這週的主題是Web API,也就是透過HTTP通訊協定,來請求及獲得回覆,也就是透過URL來傳遞後端程式需要的資訊。
為了合作上的理解和維護便利,通常會希望後端 API 設計符合以下規則:
CRUD原則
以請求的方法POST、GET、PUT、DELETE分別對應Create(創建)、Read(讀取)、Update(更新)和 Delete(刪除)等功能。
RESTful 風格
- URL的設計以名詞為主(動詞通常在請求方法中以有所描述了)
- 避免前段endpoint 不存在
另外,學習後端框架需要理解的知識有:
依賴反向原則(DIP)
- 高階模組不應該依賴於低階模組。兩者都應該依賴抽象。
- 抽象不應該依賴細節;細節應該依賴抽象。
控制反轉(IoC)
- 將物件控制權轉移給第三方『容器』:
不由高階模組直接建立低階模組,使用控制反轉中心去建立低階模組,高階模組要使用的時候再把這個低階模組交給高階模組使用。
也就是要先向容器註冊物件,註冊方式分為:
- AddSingileton: 程式執行時期,使用同一個物件實體
- AddScoped: 每一個Request使用同一個物件實體
- AddTransient: 每次注入需求皆使用新的物件實體
由容器掌管物件的生命週期,高階物件使用期間不宜呼叫dispose 等方法
依賴注入(DI)
高階物件不直接創建低階物件(依賴),而是由外部創建低階物件(依賴)後傳入(注入)高階物件。可以有效的讓物件解耦,方便抽換依賴物件的實作內容。